package com.items.form.base;


import com.items.form.model.TFormTable;
import com.items.form.model.TFormValue;

import java.util.List;

/**
 * idynamic服务
 *
 * @author bai
 * @date 2023/02/08
 */
public interface IDynamicService<E> {

    /**
     * 得到表初始化
     *
     * @param formTables 形式表
     * @return {@link List}<{@link TFormTable}>
     */
    List<TFormTable> getTableInit(List<TFormTable> formTables);

    /**
     * 获得表单列表
     *
     * @param list 列表
     * @return {@link List}<{@link E}>
     */
    List<E> getFormList(List<TFormValue> list);


    /**
     * 得到更新表单列表
     *
     * @param dto     dto
     * @param formRow 表格行
     * @return {@link List}<{@link TFormValue}>
     * @throws IllegalAccessException 非法访问异常
     */
    List<TFormValue> getUpdateFormList(List<TFormValue> formRow, E dto) throws IllegalAccessException;

    /**
     * 得到添加表单列表
     *
     * @param dto   dto
     * @param rowId 行id
     * @return boolean
     * @throws IllegalAccessException 非法访问异常
     */
    List<TFormValue> getAddFormList(String rowId, E dto) throws IllegalAccessException;
}
